Fix rdmsrl() for x86_32 -- high 32 bits must be cast to
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Fri, 30 Dec 2005 16:11:05 +0000 (17:11 +0100)
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Fri, 30 Dec 2005 16:11:05 +0000 (17:11 +0100)
u64 before shifting left.

Signed-off-by: Avi Kivity <avi@qumranet.com>
xen/include/asm-x86/msr.h

index f9a07e4791017c48eea74a8f6616d7ecaaf97f90..3c1e8fb6ba3ffc0af454462c85c050e83ab8f87b 100644 (file)
@@ -12,7 +12,7 @@
        __asm__ __volatile__("rdmsr" \
                            : "=a" (a__), "=d" (b__) \
                            : "c" (msr)); \
-       val = a__ | (b__<<32); \
+       val = a__ | ((u64)b__<<32); \
 } while(0); 
 
 #define wrmsr(msr,val1,val2) \